package com.example.couponservice.utils;

import lombok.Data;

/**
 * 统一响应结果类
 * 封装服务层返回给前端的标准响应格式
 *
 * @author czwa
 */
@Data
public class Result {

    /**
     * 响应状态码
     * 1表示成功，0表示失败
     */
    private Integer code;

    /**
     * 响应消息
     * 成功时为"success"，失败时为具体错误信息
     */
    private String msg;

    /**
     * 响应数据
     * 成功时携带具体业务数据，失败时可为null
     */
    private Object data;

    /**
     * 生成成功响应（无数据）
     *
     * @return 标准成功响应对象
     */
    public static Result success() {
        Result result = new Result();
        result.code = 1;
        result.msg = "success";
        return result;
    }

    /**
     * 生成成功响应（带数据）
     *
     * @param object 业务数据对象
     * @return 包含数据的标准成功响应对象
     */
    public static Result success(Object object) {
        Result result = new Result();
        result.data = object;
        result.code = 1;
        result.msg = "success";
        return result;
    }

    /**
     * 生成错误响应
     *
     * @param msg 错误信息
     * @return 包含错误信息的标准失败响应对象
     */
    public static Result error(String msg) {
        Result result = new Result();
        result.msg = msg;
        result.code = 0;
        return result;
    }
}